package models;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import play.db.DB;

/**
 * @author edwyn
 */
public class Opcao {

	private int codigo;
	private int codigo_enquete;
	private String descricao;
	
	public Opcao() {
		setCodigo(-1);
		setCodigo_enquete(-1);
	}
	
	public Opcao(int codigo, int codigo_enquete, String descricao) {
		this.codigo = codigo;
		this.codigo_enquete = codigo_enquete;
		this.descricao = descricao;
	}
	
	/**
     * Inserts the Evento object in the DB
     */
    public void save() throws SQLException {
    	// executeQuery para pegar o MAX de codigo
    	if(this.codigo == -1) {
    		ResultSet rs = DB.executeQuery("SELECT max(codigo) FROM opcao");
    		rs.next();
    		
    		this.codigo = rs.getInt(1) + 1;
    	} 
    	
    	DB.execute("INSERT INTO opcao(codigo, codigo_enquete, descricao) VALUES("
    			+ "'" + Integer.toString(this.codigo) + "',"
    			+ "'" + Integer.toString(this.codigo_enquete) + "',"
    			+ "'" + this.descricao + "'"
    			+ ")");
    }
    
    public static List<Opcao> all(int codigo_enquete) throws SQLException {
    	ResultSet rs = DB.executeQuery("SELECT * FROM opcao where codigo_enquete = '"+ codigo_enquete +"'");
    	
    	List<Opcao> lista = new ArrayList<Opcao>();
    	
    	while(rs.next()) {
    		Opcao opcao = new Opcao(rs.getInt(1), rs.getInt(2), rs.getString(3));
    		lista.add(opcao);
    	}
    	
    	return lista;
    }
    
    public static Opcao getOpcao(int codigo_opcao, int codigo_enquete) throws SQLException {
    	List<Opcao> lista = Opcao.all(codigo_enquete);
    	for (int i=0; i<lista.size(); i++){
    		if (lista.get(i).getCodigo() == codigo_opcao){
    			return lista.get(i);
    		}
    	}
    	return new Opcao();
    }

	/**
	 * @return the codigo
	 */
	public int getCodigo() {
		return codigo;
	}

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	/**
	 * @return the codigo_usuario
	 */
	public int getCodigo_enquete() {
		return codigo_enquete;
	}

	/**
	 * @param codigo_usuario the codigo_usuario to set
	 */
	public void setCodigo_enquete(int codigo_enquete) {
		this.codigo_enquete = codigo_enquete;
	}

	/**
	 * @return the pergunta
	 */
	public String getDescricao() {
		return this.descricao;
	}

	/**
	 * @param pergunta the pergunta to set
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
}
